“Students who study computer science unlock a world of opportunities for themselves.” - Dr. John Deasy, Former Superintendent, Los Angeles Unified School District
工具 | 推薦程度 |
---|---|
Visual Studio Code | ⭐⭐⭐⭐ |
Notion | ⭐⭐⭐ |
WSL | ⭐⭐⭐⭐ |
Git | ⭐⭐⭐⭐ |
Virtual Box | ⭐⭐⭐ |
Vim | ⭐⭐⭐ |
VS Code是一個輕量級(裝太多插件會變重量級)的文字編輯器,它跟Visual Studio(VS)的主要差別是,VS是IDE (Integrated Development Environment),在安裝的時候會讓你選擇指定的開發環境(例如 C++桌面開發),安裝完後就附帶了編譯器、程式補全、Debug以及自動化建構系統(CMake、Make、MS build等等…),相當於幫你處理了很多麻煩的東西。
而VS Code雖然也可以達到接近IDE的功能,不過需要安裝很多第三方插件去達成,且功能可能也沒有IDE那麼齊全。
(Note: VS Code不是IDE,並沒有附帶直譯或編譯器)
Notion是一個強大的線上筆記軟體,做為一個IT人,我們有大量的資訊需要做紀錄(尤其是當你解決一個網路上幾乎找不到的Bug時)。當然使用其他筆記軟體也可以!
WSL是專門為Windows系統設計,讓Windows可以有一個虛擬Linux的環境進行使用,功能十分強大,對於主要系統為Windows,但也需要Linux環境的人來說非常合適。
為什麼需要學Linux?
平時我們使用Windows都是使用它的GUI(Graphical User Interface)介面,雖然使用滑鼠點來點去很方便,但是其實GUI介面是非常消耗資源的,在程式開發的世界,能省則省,這也是為什麼大部分的伺服器都沒有GUI介面。
使用Linux有個重要的好處是,會讓你面對CLI(Command Line Interface),也就是終端機的環境,在使用的過程中,你會學習到平常在Windows下用滑鼠執行的各個動作,它是怎麼用打指令的方式實現的。對於學習電腦科學(Coumpter Science)來說非常適合。
對很多人來說,Linux是一個自由軟體(Free Software)與開發原始碼(Open Source)的精神標竿。
(可以看一下Git的故事!)
分散式版本控制,基本功中的基本功(遊戲開發可能會用p4,看公司),Git算是必點的一項技能,要參加一些開源項目,或是團隊協作開發都會用到。
透過虛擬化的技術,用軟體模擬硬體層面的設備,讓單一電腦可以執行多部虛擬電腦,每部虛擬電腦都有自己的作業系統、處理器核心、記憶體等設備,更多詳細資料參考:
https://www.oracle.com/tw/cloud/compute/virtual-machines/what-is-virtual-machine/
https://azure.microsoft.com/zh-tw/resources/cloud-computing-dictionary/what-is-a-virtual-machine
Virtual Box 與 VMWare的比較可以參考這篇:
https://phoenixnap.com/kb/virtualbox-vs-vmware
也可以去了解WSL與傳統虛擬機的區別!
Vim是一個文本編輯器,以學習曲線陡峭聞名,它的核心是使用鍵盤的快捷鍵去完成許多需要繁瑣或需要滑鼠的操作,在使用上是可以讓你在搭配CLI使用的程式開發環境下,完全脫離滑鼠的掌控!
Unix/Linux系統幾乎都原生帶有vi或vim(有興趣也可以看vi跟vim的歷史故事~)
(Note: 雖然與VS Code都是文本編輯器,不過在VS Code中有Vim的插件可以使用。)
初學者可以先在VSCode安裝Vim的插件,使用時配合Cheat Sheet,遇到忘記的操作可以參考。
學時一條蟲,學成一條龍。
https://www.youtube.com/watch?v=-txKSRn0qeA&t=36s
StackOverFlow是一個來自世界各地工程師的論壇,當你把錯誤信息丟上Google後,有九成的機會跑出這個網站。
CSDN是中國的工程師論壇,類似於中文版的StackOverFlow。